[INV-MIGRATION-190] Создать таблицу fridge_db.waste_logs

Развертывание структур учета утилизации отходов и порчи продуктов

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи

  • Инструкция по шагам: Выполнить DDL-миграцию для создания таблицы учета фактов утилизации и порчи продуктов (waste_logs) внутри базы fridge_db. Данное архитектурное решение позволяет фиксировать бизнес-причины выброса еды в рамках одной ACID-транзакции со списанием остатков (Шаг 7).
-- Скрипт миграции для fridge_db (Контур INVENTORY)
CREATE TABLE IF NOT EXISTS fridge_db.waste_logs (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    home_group_id VARCHAR(64) NOT NULL,
    user_id VARCHAR(64) NOT NULL,
    trace_id VARCHAR(128) NOT NULL,             -- X-Request-ID для сквозного трекинга инцидентов
    waste_reason VARCHAR(32) NOT NULL,          -- ENUM со скриншота: 'PROPALO', 'SPOILT', 'EXPIRED'
    space_type VARCHAR(16) NOT NULL,            -- 'HOME' / 'OFFICE'
    spent_items JSONB NOT NULL,                 -- Массив утилизированного сырья: [{"food_element_id": "X", "quantity": 0.5}]
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Индекс для аналитики объемов и причин порчи еды в разрезе групп
CREATE INDEX IF NOT EXISTS idx_waste_logs_group_reason 
ON fridge_db.waste_logs (home_group_id, waste_reason, created_at DESC);